.. _cmcMxIsDone: cmcMxIsDone ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmcMxIsDone ([in] VT_I4 BoardID, [in] VT_I4 NumAxes, [in] VT_PI4 NumChannel, [out] VT_PI4 IsDone) DESCRIPTION ````````````` - 여러 ê°œì˜ ì¶•ì— ëŒ€í•˜ì—¬ ì§€ì •í•œ ëª¨ë“ ì¶•ì˜ ëª¨ì…˜ì´ ì™„ë£Œë는지를 확ì¸(確èª)합니다. ì´ í•¨ìˆ˜ëŠ” ë‹¤ì¶•ì œì–´ë¿ ì•„ë‹ˆë¼ ì›ì 복귀나 ë‹¨ì¶•ëª¨ì…˜ì œì–´ ìž‘ì—…ì‹œì—ë„ í™œìš©í• ìˆ˜ 있습니다. \ - ì´ í•¨ìˆ˜ì˜ ì‚¬ìš©ê³¼ í˜¸ì¶œì— ìžˆì–´, ì œê³µëœ ãˆœì»¤ë¯¸ì¡°ì•„ì˜ í•¨ìˆ˜ í—¤ë” Visual Basic ì—서는 í•¨ìˆ˜ì˜ ì²¨ë‘ì–´ cmc ê°€ 붙지 않습니다. PARAMETER ````````````` â–¶ BoardID : 사용ìžê°€ ì„¤ì •í•œ 디바ì´ìŠ¤(ë³´ë“œ) ID. â–¶ NumAxes : ë™ì‹œì— ìž‘ì—…ì„ ìˆ˜í–‰í• ëŒ€ìƒ ì¶•ì˜ ìˆ˜ â–¶ NumChannel : 작업완료를 확ì¸(確èª)í• ëŒ€ìƒ ì¶•ì˜ ë°°ì—´ 주소값. ì´ ë°°ì—´ì˜ í¬ê¸°ëŠ” NumAxesê°’ê³¼ ì¼ì¹˜í•˜ê±°ë‚˜ 커야 합니다. â–¶ IsDone : ë‹¤ì¶•êµ¬ë™ ì™„ë£Œ 여부를 íŒë‹¨í• 수 있는 매개변수 입니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning cmcFALSE, ëª¨ì…˜ìž‘ì—…ì´ ì™„ë£Œë˜ì§€ ì•ŠìŒ cmcTRUE, ëª¨ì…˜ìž‘ì—…ì´ ì™„ë£Œë¨ RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | ìŒìˆ˜ | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ EXAMPLE ````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ long nIsDone; long BoardID = 0; long nNumChannel[2] = {0, cmY1}; double fDistList[2] = {1000, 1000}; if(cmcMxMove(BoardID, 2, nNumChannel, fDistList, cmcFALSE) != ERR_NONE){ //Handle ì€ ì‚¬ìš©ìžê°€ ìƒì„±í•œ í¼ì˜ 핸들 값입니다. // ì—러메시지 ì¶œë ¥ return; } while (1){ cmcMxIsDone(BoardID, 2, nNumChannel, &nIsDone); if(nIsDone == cmcTRUE) break; else{ // 다축 ëª¨ì…˜ì´ ì¢…ë£Œë˜ì§€ ì•Šì€ ê²½ìš°ìž…ë‹ˆë‹¤. ì ì ˆí•œ 처리를 합니다. } } .. code-block:: c++ :linenos: Visual Basic Dim BoardID As Long Dim nNumChannel(2) As Long Dim fDistList(2) As Double BoardID = 0 „ ëŒ€ìƒ ì¶• ì„¤ì • nNumChannel(0) = 0 nNumChannel(1) = cmY1 „ ëŒ€ìƒ ì¶•ì— ëŒ€í•œ ì´ì†¡ 거리 ì„¤ì • fDistList(0) = 1000 fDistList(1) = 1000 If(MxMove(BoardID, 2, nNumChannel(0), fDistList(0), cmcFALSE) <> ERR_NONE) Then // ì—러메시지 ì¶œë ¥ Exit Sub End If While(MxIsDone(BoardID, 2, nNumChannel(0), cmcTRUE) <> ERR_NONE) Then // ì—러메시지 ì¶œë ¥ Exit Sub; End If .. code-block:: c++ :linenos: Delphi BoardID := 0; // ëŒ€ìƒ ì¶• ì„¤ì • nNumChannel[0] := 0; nNumChannel[1] := cmY1; // ëŒ€ìƒ ì¶•ì— ëŒ€í•œ ì´ì†¡ 거리 ì„¤ì • fDistList[0] := 1000; fDistList[1] := 1000; if(cmcMxMove(BoardID, 2, @nNumChannel, @fDistList) <> ERR_NONE) then begin // ì—러메시지 ì¶œë ¥ end; while(cmcMxIsDone(BoardID, 2, @nNumChannel, @IsDone) <> ERR_NONE) do begin // 여기서 IsDone ì´ cmcTRUE ì´ë©´ Loop 를 탈출하면 ë©ë‹ˆë‹¤. … end; if(cmcErrGetLastCode() <> ERR_NONE) then begin // ì—러메시지 ì¶œë ¥ end; SEE ALSO ``````````````` .. seealso:: :ref:`cmcMxWaitDone`